package org.jeecg.modules.music.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.api.vo.artist.ArtistAlbumVo;
import org.jeecg.modules.api.vo.artist.ArtistDetailVo;
import org.jeecg.modules.api.vo.artist.ArtistVo;
import org.jeecg.modules.api.vo.sys.IndexChartVo;
import org.jeecg.modules.music.entity.MusArtist;
import org.jeecg.modules.music.entity.MusSong;
import org.jeecg.modules.music.entity.dto.HomeMusCountDto;

import java.util.List;

public interface IMusArtistService  extends IService<MusArtist> {

    void saveArtist(MusArtist artist);

    void editArtist(MusArtist artist);

    boolean deleteArtist(String id);

    boolean deleteBatchArtists(String ids);

    IPage<MusSong> querySongDetailPage(Page<MusSong> page, String artistId, MusSong songParams);

    ArtistVo queryArtistVoById(String artistId);

    ArtistDetailVo queryArtistDetail(String id);

    List<ArtistAlbumVo> queryArtistAlbums(String id, Integer limit, Integer offset);

    List<ArtistDetailVo> querySimiSingers(String id);

    List<ArtistDetailVo> queryHotSingers(Integer offset, Integer limit);

    List<ArtistDetailVo> querySingersList(Integer type, Integer area, String initial, Integer offset, Integer limit);

    IndexChartVo queryIndexChart();

    List<ArtistDetailVo> searchSuggestArtist(String keywords);

    List<ArtistDetailVo> searchArtist(String keywords, Integer limit, Integer offset);

    List<HomeMusCountDto> queryGroupCountry();

    List<HomeMusCountDto> queryGroupSex();

    List<HomeMusCountDto> queryGroupIsEnter();
}
